package top.zywork.service;

import top.zywork.vo.ExpressComputeVO;
import top.zywork.vo.ResponseStatusVO;

import java.util.List;

/**
 * GoodsExpressService服务接口<br/>
 *
 * 创建于2019-11-22<br/>
 *
 * @author http://zywork.top 危锦辉
 * @version 1.0
 */
public interface GoodsExpressService extends BaseService {

    /**
     * 保存商品和运费模版的关联表信息，同时保存当前商品下面的所有sku的关联信息
     * @param goodsInfoId 商品编号
     * @param expressTemplateId 运费模版编号
     * @return
     */
    ResponseStatusVO saveData(Long goodsInfoId, Long expressTemplateId);

    /**
     * 根据用户编号获取指定商品的运费信息
     * @param userId 用户编号
     * @param goodsId 商品编号
     * @param goodsSkuId 商品sku编号
     * @return
     */
    ResponseStatusVO getExpressInfoByUserId(Long userId, Long goodsId, Long goodsSkuId, String province);

    /**
     * 获取运费信息
     * @param goodsId
     * @param goodsSkuId
     * @return
     */
    ResponseStatusVO getExpressInfo(Long goodsId, Long goodsSkuId);

    /**
     * 获取默认模版信息
     * @return
     */
    ResponseStatusVO getDefaultExpressInfo();

    /**
     * 计算商品运费
     * @param expressComputeVOList
     * @return
     */
    ResponseStatusVO computeExpressFee(Long userId, List<ExpressComputeVO> expressComputeVOList);
}
